package com.example.common.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 基础实体基类类
 * 封装了创建时间、更新时间和逻辑删除字段
 * 用于提供其他实体类的继承
 */
@Data
public class BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L; // 序列化版本号

    // 创建时间
    @TableField(fill = FieldFill.INSERT) //MyBatis-Plus注解，标识该字段在数据库插入时自动填充
    private LocalDateTime createTime;

    // 更新时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    // 逻辑删除字段  0表示正常状态 1表示删除状态 mybatis-plus内部逻辑
    // 未避免id 不可查询
    @TableLogic
    private Integer deleted;
}
